package com.itlong.cloud.equip.property;

import com.itlong.cloud.POJO.DTO.property.*;
import com.itlong.cloud.POJO.DTO.sdk.CloudFaceApiDTO;
import com.itlong.cloud.POJO.PO.ProductTypePO;
import com.itlong.cloud.POJO.VO.property.*;
import com.itlong.cloud.POJO.VO.sdk.SDKFaceDeviceInfoGetVO;
import com.itlong.cloud.utils.page.Page;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      设备接口服务暴露接口。
 * </desc>
 *
 * @createDate 2017/08/29
 */
@FeignClient(name = "equip-service")
public interface IPropertyEquipServiceClient {


    /**
     * <desc>
     *      获取电梯楼层对应表
     * </desc>
     *
     * @param deviceUnique
     * @return
     * @author Jiaqi.X
     * @createDate 2020/03/27
     */
    @PostMapping(path = "/getFloorByDeviceUnique")
    List<PropertyGetFloorByDeviceUniqueVO> getFloorByDeviceUnique(@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      根据项目id获取云电梯列表
     * </desc>
     *
     * @param projectId
     * @return
     * @author Jiaqi.X
     * @createDate 2020/03/27
     */
    @PostMapping(path = "/getElevatorByProjectId")
    List<PropertyGetElevatorNameAndDeviceUniqueVO> getElevatorByProjectId(@RequestParam("projectId") String projectId,
                                                                          @RequestParam(value = "unitId",required = false) String unitId,
                                                                          @RequestParam(value = "floorNum",required = false) String floorNum);

    /**
     * <desc>
     *      DEMO示例。
     * <desc/>
     *
     * @param param id
     * @return hello
     * @author Wenchao.L
     * @createDate 2017/08/29
     */
    @RequestMapping(path = "/equipSayHello/{param}", method = {RequestMethod.GET})
    String equipSayHello(@PathVariable(value = "param") String param);


    /**
     * <desc>
     *      DEMO示例。
     * <desc/>
     * @param  param id
     * @return Service
     * @author Wenchao.L
     * @createDate 2017/08/29
     */
    @RequestMapping(path = "/updateEquipInfo/{param}", method = {RequestMethod.GET})
    void updateEquipInfo(@PathVariable(value = "param") String param);

    /**
     * <desc>
     *      物业添加设备
     * <desc/>
     * @param   propertyEquipSaveDTO   物业设备数据转换对象
     * @return
     * @author Biao.R
     * @createDate 2017/9/25
     */
    @PostMapping(path = "/addEquipInfo")
    void addPropertyEquip(@RequestBody PropertyCloudIntercomSaveDTO propertyEquipSaveDTO) throws Exception;

    /**
     * <desc>
     *      分页查询设备列表
     * <desc/>
     * @param  propertyEquipSaveDTO     物业设备数据转换对象
     * @return
     * @author Biao.R
     * @createDate 2017/9/25
     */
    @PostMapping(path = "/getByPage")
    Page<PropertyEquipGetVO> getByPage(@RequestBody PropertyEquipGetPageDTO propertyEquipSaveDTO) throws Exception;

    /**
     * <desc>
     *      根据设备唯一码查找设备
     * <desc/>
     * @param   deviceUnique   设备唯一码
     * @return
     * @author Biao.R
     * @createDate 2017/9/26
     */
    @GetMapping(path = "/getByDeviceUnique/{deviceUnique}")
    PropertyEquipGetVO getByDeviceUnique(@PathVariable("deviceUnique") String deviceUnique) throws Exception;

    /**
     * <desc>
     *      根据设备唯一码删除已有设备数据
     * <desc/>
     * @param   deviceUnique   设备唯一码
     * @return
     * @author Juguang.S
     * @createDate 2019/11/4
     */
    @GetMapping(path = "/deleteByDeviceUnique")
    void deleteByDeviceUnique(@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      物业更新设备
     * <desc/>
     * @param   propertyEquipSaveDTO   物业设备数据转换对象
     * @return
     * @author Biao.R
     * @createDate 2017/9/25
     */
    @PostMapping(path = "/updateEquipInfo")
    void updatePropertyEquip(@RequestBody PropertyCloudIntercomSaveDTO propertyEquipSaveDTO) throws Exception;

    /**
     * <desc>
     *      查询设备归属地址
     * <desc/>
     * @param   deviceUnique    设备唯一码
     * @return  设备归属地集合
     * @author Biao.R
     * @createDate 2017/9/27
     */
    @GetMapping(path = "/getEquipAddress/{deviceUnique}")
    List<PropertyEquipAddressVO> getEquipAddress(@PathVariable("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      更新设备状态,并处理受影响用户的权限
     * <desc/>
     * @param   equipAddDTO    更新设备数据DTO
     * @author Biao.R
     * @createDate 2017/9/28
     */
    @PostMapping(path = "/updateStatus")
    Integer updateStatus(@RequestBody PropertyCloudIntercomSaveDTO equipAddDTO) ;

    /**
     * <desc>
     *      删除设备归属地址
     * <desc/>
     * @param   propertyProjectRemoveUnitInfoDTO  删除单元信息数据传输对象
     * @author Integer  返回解绑数量
     * @createDate 2017/9/29
     */
    @PostMapping(path = "/deleteAddress")
    Integer deleteAddress(@RequestBody PropertyProjectRemoveUnitInfoDTO propertyProjectRemoveUnitInfoDTO);

    /**
     * <desc>
     *      根据地址查询云对讲设备
     * <desc/>
     * @param   cloudIntercomAddrDTO    设备类型
     * @return   List<PropertyEquipGetVO> 查询结果集
     * @author Biao.R
     * @createDate 2017/11/1
     */
    @PostMapping(path = "/getCloudIntercomByAddr")
    List<DeviceCloudIntercomSimpleVO> getCloudIntercomByAddr(@RequestBody PropertyEquipAuthGetDTO cloudIntercomAddrDTO) throws Exception;

    /**
     * <desc>
     *      绑定设权限时分页获取设备
     * <desc/>
     * @param   propertyEquipAuthGetDTO  绑定设权限时分页获取设备DTO
     * @return   Page<Map<String, String>>    返回的设备分页信息
     * @author Biao.R
     * @createDate 2017/10/9
     */
    @PostMapping(path = "/getEquipAuthByPage")
    Page<PropertyEquipSimpleVO> getEquipAuthByPage(@RequestBody PropertyEquipAuthGetDTO propertyEquipAuthGetDTO) throws Exception;

    /**
     * <desc>
     *      获取用户设备权限列表
     * </desc>
     *
     * @param propertyEquipAuthGetDTO 绑定设权限时分页获取设备DTO
     * @return 返回的设备分页信息
     * @Author Zhu.yj
     * @createDate  2021/4/14
     */
    @PostMapping("/getUserEquipAuthByPage")
    Page<PropertyEquipSimpleVO> getUserEquipAuthByPage(@RequestBody PropertyEquipAuthGetDTO propertyEquipAuthGetDTO) throws Exception;

    /**
     * <desc>
     *      根据设备机号或名称查找设备时否唯一
     * <desc/>
     * @param   propertyEquipGetDTO    设备唯一性查询DTO
     * @return  List<PropertyEquipGetVO>    查找出的设备集合
     * @author Biao.R
     * @createDate 2017/10/11
     */
    @PostMapping(path = "/checkEquip")
    List<PropertyEquipGetVO> checkEquip(@RequestBody PropertyEquipGetDTO propertyEquipGetDTO) throws Exception;

    /**
     * <desc>
     *      根据地址获取对应设备
     * <desc/>
     * @param   userDeviceAuthAddreddDTOS  地址信息集
     * @return   List<AppUserDeviceAuthsVO> 住户权限设备信息集
     * @author zhangs
     * @createDate 2017/10/31
     */
    @PostMapping(path = "/getAuthDeviceByAddress")
    List<AppUserDeviceAuthsVO> getAuthDeviceByAddress(@RequestBody List<UserDeviceAuthAddreddDTO> userDeviceAuthAddreddDTOS) throws Exception;

    /**
     * <desc>
     *      根据projectId查询项目云对讲设备数量
     * <desc/>
     * @param  projectId    查询的小区ID
     * @return 云对讲设备数量
     * @author Biao.R
     * @createDate 2018/1/12
     */
    @PostMapping(path = "/countCloudEquipByProjectId")
    Integer countCloudEquipByProjectId(@RequestParam("projectId") String projectId);

    /**
     * <desc>
     *     根据projectId查询项目云对讲所有设备
     * </desc>
     *
     * @param propertyIntercomGetByProjectIdDTO 查询设备传输对象
     * @return 项目所有云对讲设备
     * @author wangzhi
     * @createDate 2018/3/26
     */
    @PostMapping(path = "/getAllEquipsByProjectId")
    Page<PropertyAllEquipGetVO> getAllEquipsByProjectId
        (@RequestBody PropertyIntercomGetByProjectIdDTO propertyIntercomGetByProjectIdDTO) throws Exception;

    /**
     * <desc>
     *      查找云电梯产品型号信息
     * </desc>
     *
     * @param typeId 云电梯类型
     * @return
     * @author JuGuang.S
     * @createDate 2018-04-16
     */
    @PostMapping(path = "/getTypeId")
    ProductTypePO getTypeId(@RequestParam("typeId") Integer typeId);

    /**
     * <desc>
     *      根据设备唯一码获取有设备权限的一卡通用户
     * </desc>
     *
     * @param deviceUnique 设备唯一码
     * @return
     * @author JuGuang.S
     * @createDate 2018-04-17
     */
    @PostMapping(path = "/getSmartCardUser")
    List<EquipAuthUserGetVO> getSmartCardUser(@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *     分页查询项目下或多媒体资源所绑定的所有支持平板人脸识别的设备
     * </desc>
     *
     * @param propertyPadFaceRecognitionGetForMediaDTO 使用projectId或mediaId查询该项目下所有支持人脸识别的云电梯或门禁设备数据传输对象
     * @return 分页查询结果
     * @author wangzhi
     * @createDate 2018/05/11
     */
    @PostMapping(path = "/getPadFaceEquipByPage")
    Page<PropertyPadFaceEquipVO> getPadFaceEquipByPage(@RequestBody PropertyPadFaceRecognitionGetForMediaDTO propertyPadFaceRecognitionGetForMediaDTO) throws Exception;

    /**
     * <desc>
     *      设置云对讲设备的待机界面
     * </desc>
     *
     * @param deviceUniqueStr
     * @param fileUrl 文件上传服务器的URL
     * @return
     * @author JuGuang.S
     * @createDate 2018-08-07
     */
    @PostMapping(path = "/setStandbyInterface")
    void setStandbyInterface(@RequestParam("deviceUniqueStr") String deviceUniqueStr,@RequestParam("fileUrl") String fileUrl) throws Exception;

    /**
     * <desc>
     * 修改电梯设备的楼层映射表
     * <desc/>
     *
     * @param deviceUniqueStr 电梯设备的deviceUnique号
     * @return 标准格式化响应结果
     * @author Juguang.S
     * @createDate 2018/08/21
     */
    @PostMapping(path = "/updateFloorInfo")
    Map<String,Object> updateFloorInfo(@RequestParam("deviceUniqueStr") String deviceUniqueStr,@RequestBody List<ElevatorFloorInfoDTO> elevatorFloorDTOList,
                                       @RequestParam("projectId") String projectId, @RequestParam("bracketPanel") Integer bracketPanel) throws Exception;

    /**
     * <desc>
     * 重置电梯设备的楼层映射表
     * <desc/>
     *
     * @param deviceUniqueStr 电梯设备的deviceUnique号，多个以逗号隔开
     * @return 标准格式化响应结果
     * @author Juguang.S
     * @createDate 2018/08/21
     */
    @PostMapping(path = "/resetFloorInfo")
    void resetFloorInfo(@RequestParam("deviceUniqueStr") String deviceUniqueStr,@RequestParam("projectId") String projectId) throws Exception;

    /**
     * <desc>
     * 根据deviceUnique获取电梯设备的楼层映射信息
     * <desc/>
     *
     * @param deviceUniqueStr 电梯设备的deviceUnique号
     * @return 标准格式化响应结果
     * @author Juguang.S
     * @createDate 2018/08/21
     */
    @PostMapping(path = "/getElevatorFloorInfo")
    List<CloudElevatorFloorInfoVO> getElevatorFloorInfo(@RequestParam("deviceUniqueStr") String deviceUniqueStr) throws Exception;

    /**
     * <desc>
     *      快速设置楼层映射表
     * </desc>
     *
     * @param startFloor
     * @param startTerminal
     * @param deviceUnique
     * @author Jiaqi.X
     * @createDate 2018/11/26
     */
    @PostMapping(path = "/floorFastSetting")
    void floorFastSetting(@RequestParam("startFloor") String startFloor,
                                @RequestParam("endFloor") String endFloor,
                                 @RequestParam("startTerminal") String startTerminal,
                                 @RequestParam("deviceUnique") String deviceUnique,
                                 @RequestParam("type") Integer type) throws Exception;

    /**
     * <desc>
     *      获取楼栋的地上及地下楼层
     * </desc>
     *
     * @param buildId
     * @return
     * @author Jiaqi.X
     * @createDate 2018/12/18
     */
    @PostMapping(path = "/getBuildMaxFloorAndMinFloor")
    Map<String,Object> getBuildMaxFloorAndMinFloor(@RequestParam("buildId") String buildId);

    /**
     * <desc>
     *      处理设备旧数据的sip账号，为了便于灵云区分测试和正式sip故在测试环境设备账号前加184前缀
     * <desc/>
     *
     * @return 标准格式化响应结果
     * @author Juguang.S
     * @createDate 2018/12/28
     */
    @PostMapping(path = "/updateOldDeviceSipAccount")
    void updateOldDeviceSipAccount() throws Exception;

    /**
     * <desc>
     *      获取最大权限标识及最小权限标识
     * </desc>
     *
     * @param deviceUnique
     * @return
     * @author Jiaqi.X
     * @createDate 2018/12/18
     */
    @PostMapping(path = "/getMaxNaturalAndMinNatural")
    Map<String,Object> getMaxNaturalAndMinNatural(@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      查询云电梯楼层映射信息
     * </desc>
     *
     * @param deviceUnique 设备序列号
     * @return 云电梯楼层映射信息
     * @author wangzhi
     * @createDate 2019/01/21
     */
    @PostMapping(path = "/getDeviceElevatorConfig")
    PropertyDeviceElevatorConfigVO getDeviceElevatorConfig(@RequestParam("deviceUnique") String deviceUnique) throws Exception;


    /**
     * <desc>
     *      楼层映射表调整
     * </desc>
     *
     * @author Jiaqi.X
     * @createDate 2019/03/27
     */
    @PostMapping(path = "/floorMappingTrim")
    void floorMappingTrim();

    /**
     * <desc>
     *     兼容之前添加门禁设备的门禁类别
     * </desc>
     *
     * @author Juguang.S
     * @createDate 2019/02/21
     */
    @PostMapping(path ="/handleOldDataEntranceTypeInfo")
    void handleOldDataEntranceType() throws Exception;

    /**
     * <desc>
     *      云门禁上报设备的能力集信息
     * </desc>
     *
     * @param sn
     * @param capacitySet 能力集信息
     * @param doorCount 门数
     * @return
     * @author Juguang.S
     * @createDate 2019/02/21
     */
    @PostMapping(path = "smartCommunity/interface/device/reportCapacitySet")
    void reportCapacitySet(
            @RequestParam("sn") String sn,
            @RequestParam("capacitySet") String capacitySet,
            @RequestParam("doorCount") int doorCount,
            @RequestParam("deviceType") String deviceType
    ) throws Exception;

    /**
     * <desc>
     *      云门禁获取固定密码
     * </desc>
     *
     * @param dto
     * @return
     * @author Juguang.S
     * @createDate 2019/02/22
     */
    @RequestMapping(path = "/smartCommunity/interface/entrance/pullDevicePwd",method = RequestMethod.POST)
    CloudEntranceRoomPwdPageVO pullDevicePwd(@RequestBody CloudEntrancePageDTO dto) throws Exception;

    /**
     * <desc>
     *      云门禁校验动态开门密码
     * </desc>
     *
     * @return false-失败 true-成功
     * @author wangzhi
     * @createDate 2019/02/25
     */
    @PostMapping(path = "/cloudEntrance/checkDynamicPwd")
    Boolean checkDynamicPwd(@RequestBody CloudIntercomDynamicPwdCheckDTO checkDTO) throws Exception;

    /**
     * <desc>
     *      查询指定电梯是否关联云群控器
     * </desc>
     *
     * @param deviceUnique 设备序列号
     * @return
     * @author Juguang.S
     * @createDate 2019/03/26
     */
    @PostMapping(path = "/isBindCloudController")
    Integer isBindCloudController(@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      获取云电梯设备服务权限信息
     * </desc>
     *
     * @author wangzhi
     * @createDate 2019/04/30
     */
    @PostMapping(path = "/smartCommunity/interface/entrance/getDeviceServeRoomsByPage")
    Page<CloudEntranceDeviceAuthVO.Room> getDeviceServeRoomsByPage(@RequestBody CloudIntercomDeviceAuthGetDTO getDTO);

    /**
     * <desc>
     *      根据设备信息获取访客信息
     * </desc>
     *
     * @author wangzhi
     * @createDate 2019/04/30
     */
    @PostMapping(path = "/smartCommunity/interface/entrance/getVisitorInfoByUnique")
    List<CloudIntercomVisitorVO> getVisitorInfoByDevice(@RequestBody CloudIntercomDeviceAuthGetDTO getDTO) throws Exception;

    /**
     * <desc>
     *      获取项目配置的设置限制数量
     * <desc/>
     * @param   projectId   项目编号
     * @return
     * @author Juguang.S
     * @createDate 2019/08/05
     */
    @PostMapping(path = "/getDeviceCountByProjectId")
    Map<String,Object> getDeviceCountByProjectId(@RequestParam("projectId") String projectId);

    /**
     * <desc>
     *      根据设备类型查询相对应设备的数量
     * <desc/>
     * @param   deviceType   设备类型 1电梯 2门禁 3电梯 4平板
     * @param   projectId    项目编号
     * @return
     * @author Juguang.S
     * @createDate 2019/08/05
     */
    @PostMapping(path = "/getDeviceCountByType")
    Integer getDeviceCountByType(@RequestParam("deviceType") Integer deviceType,
                                 @RequestParam("projectId") String projectId,
                                 @RequestParam(value = "batchNumber",required = false) String batchNumber);

    /**
     * <desc>
     *      判断一卡通是否需要注册iot
     * </desc>
     *
     * @param projectId 项目编号
     * @author Qiang.S
     * @createDate 2019/07/25
     */
    @PostMapping(path = "/smartCommunity/interface/equip/checkSmartCardIot")
    CloudElevatorVO checkSmartCardIot(@RequestParam("projectId") String projectId);

    /**
     * <desc>
     *      检测设备是否存在
     * </desc>
     *
     * @param deviceUnique
     * @param type
     * @return
     * @author Jiaqi.X
     * @createDate 2019/11/25
     */
    @PostMapping(path = "/smartCommunity/interface/equip/checkEquipExists")
    Integer checkEquipExists(@RequestParam("deviceUnique") String deviceUnique,@RequestParam("type") Integer type);

    /**
     * <desc>
     *      获取不同设备的批次号。
     * <desc/>
     *
     * @param  projectId 项目ID
     * @param  deviceType 设备类型1-电梯 2-门禁 3-云对讲 4-平板
     * @return
     * @author Juguang.S
     * @createDate 2019-11-21
     */
    @PostMapping(path = "/getBatchNumber")
    List<String> getBatchNumber(@RequestParam("projectId") String projectId, @RequestParam("deviceType") String deviceType) throws Exception;

    /**
     * <desc>
     *      获取批次号下的不同设备类型的设备数量。
     * <desc/>
     *
     * @param  projectId 项目ID
     * @param  deviceType 设备类型1-电梯 2-门禁 3-云对讲 4平板
     * @param  batchNumber 批次号
     * @return
     * @author Juguang.S
     * @createDate 2019-11-22
     */
    @PostMapping(path = "/getDeviceCountByBatchNumber")
    Integer getDeviceCountByBatchNumber(@RequestParam("projectId") String projectId,
                                        @RequestParam("deviceType") String deviceType,
                                        @RequestParam(value = "batchNumber",required = false) String batchNumber) throws Exception;

    /**
     * <desc>
     *      访客二维码校验
     * </desc>
     *
     * @param checkQrCodeDTO  设备序列号
     * @return
     * @author Jiaqi.X
     * @createDate 2019/10/15
     */
    @PostMapping(path = "/smartCommunity/interface/equip/checkVisitorQrcode")
    Boolean checkVisitorQrcode(@RequestBody CheckQrCodeDTO checkQrCodeDTO) throws Exception;

    /**
     * <desc>
     *      上传二维码通行记录
     * </desc>
     *
     * @param jsonRecord
     * @author Jiaqi.X
     * @createDate 2019/10/24
     */
    @PostMapping(path = "/smartCommunity/interface/equip/uploadQrcodePssRecord")
    void uploadQrcodePssRecord(@RequestParam("jsonRecord") String jsonRecord,@RequestParam(value = "deviceType",required = false)Integer deviceType,
                               @RequestParam("sn") String sn) throws Exception;

    /**
     * <desc>
     *      检测业主记录是否已存在
     * </desc>
     *
     * @param userId
     * @param projectId
     * @param passTime
     * @return
     * @author Jiaqi.X
     * @createDate 2019/11/18
     */
    @PostMapping(path = "/smartCommunity/interface/equip/checkOwnerRecordExists")
    Integer checkOwnerRecordExists(@RequestParam("userId") String userId,@RequestParam("projectId") String
            projectId,@RequestParam("passTime") String passTime,@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      检测访客通行记录是否已存在
     * </desc>
     *
     * @param passId
     * @return
     * @author Jiaqi.X
     * @createDate 2019/11/18
     */
    @PostMapping(path = "/smartCommunity/interface/equip/checkVisitorExists")
    Integer checkVisitorExists(@RequestParam("passId") String passId,@RequestParam("passTime") String passTime,@RequestParam("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      检测sdk通行记录是否存在
     * </desc>
     *
     * @param uid
     * @param projectId
     * @param openTime
     * @return
     * @author Jaiqi.X
     * @createDate 2019/11/18
     */
    @PostMapping(path = "/smartCommunity/interface/equip/checkSDKQrcodeRecordExists")
    Integer checkSDKQrcodeRecordExists(@RequestParam("uid") String uid,@RequestParam("projectId") String projectId,
                                       @RequestParam("openTime") String openTime,@RequestParam("deviceUnique") String deviceUnique,
                                       @RequestParam("passType") Integer passType);

    /**
     * <desc>
     *      获取设备信息 人脸api
     * </desc>
     *
     * @param dto
     * @author Qiang.S
     * @createDate 2019/11/06
     */
    @PostMapping(path = "/smartCommunity/interface/equip/getEquipInfoForApi")
    List<SDKFaceDeviceInfoGetVO> getEquipInfoForApi(@RequestBody CloudFaceApiDTO dto);

    /**
     * <desc>
     *      分页查询设备相关人员权限
     * </desc>
     * @param deviceUnique 设备唯一码
     * @param deviceType 1-电梯 2-门禁 3-云对讲
     * @param userType 1-业主 2-访客 3-临时
     * @return
     * @author Qiang.S
     * @createDate 2020/06/02
     */
    @PostMapping(path = "/smartCommunity/interface/equip/getEquipUserInfo")
    Page<PropertyEquipUserInfoVO> getEquipUserInfo(@RequestParam("deviceUnique") String deviceUnique,@RequestParam("deviceType") String deviceType,
                                       @RequestParam("userType")String userType,@RequestParam("currentPage") Integer currentPage,
                                       @RequestParam("pageSize")Integer pageSize) throws Exception;


    /**
     * <desc>
     *      通过地址获取电梯设备
     * </desc>
     *
     * @param
     * @return
     * @author Jiaqi.X
     * @createDate 2019/10/15
     */

    @PostMapping(path = "/smartCommunity/interface/equip/getElevatorListByAddress")
     List<CloudElevatorVO> getElevatorListByAddress(@RequestParam("until") String until);


}
